home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / phy-bstyles / iaea.bst < prev    next >
Text File  |  1992-06-14  |  19KB  |  1,041 lines

  1. %% #define IAEA 1        % Thu Jun 14 13:24:41 1990
  2. %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX"
  3.     % Please notify Charles Karney (Karney@Princeton.EDU)
  4.     % of any bugs, improvements, etc.
  5.  
  6.     % For 1 Conferences
  7.  
  8.     % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  9.     % Copyright (C) 1985, all rights reserved.
  10.     % Copying of this file is authorized only if either
  11.     % (1) you make absolutely no changes to your copy, including name, or
  12.     % (2) if you do make changes, you name it something other than
  13.     % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  14.     % This restriction helps ensure that all standard styles are identical.
  15.     % The file btxbst.doc has the documentation for this style.
  16.  
  17. ENTRY
  18.   { address
  19.     author
  20.     booktitle
  21.     chapter
  22.     edition
  23.     editor
  24.     howpublished
  25.     institution
  26.     journal
  27.     key
  28.     month
  29.     note
  30.     number
  31.     organization
  32.     pages
  33.     publisher
  34.     school
  35.     series
  36.     title
  37.     type
  38.     volume
  39.     year
  40.   }
  41.   {}
  42.   { label }
  43.  
  44. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  45.  
  46. FUNCTION {init.state.consts}
  47. { #0 'before.all :=
  48.   #1 'mid.sentence :=
  49.   #2 'after.sentence :=
  50.   #3 'after.block :=
  51. }
  52.  
  53. STRINGS { s t }
  54.  
  55. FUNCTION {output.nonnull}
  56. { 's :=
  57.   output.state mid.sentence =
  58.     { ", " * write$ }
  59.     { output.state after.block =
  60.     { "," * write$
  61.       newline$
  62.       "\newblock " write$
  63.     }
  64.     { output.state before.all =
  65.         'write$
  66.         { add.period$ " " * write$ }
  67.       if$
  68.     }
  69.       if$
  70.       mid.sentence 'output.state :=
  71.     }
  72.   if$
  73.   s
  74. }
  75.  
  76. FUNCTION {output}
  77. { duplicate$ empty$
  78.     'pop$
  79.     'output.nonnull
  80.   if$
  81. }
  82.  
  83. FUNCTION {output.check}
  84. { 't :=
  85.   duplicate$ empty$
  86.     { pop$ "empty " t * " in " * cite$ * warning$ }
  87.     'output.nonnull
  88.   if$
  89. }
  90.  
  91. FUNCTION {output.bibitem}
  92. { newline$
  93.   "\bibitem{" write$
  94.   cite$ write$
  95.   "}" write$
  96.   newline$
  97.   ""
  98.   before.all 'output.state :=
  99. }
  100.  
  101. FUNCTION {fin.entry}
  102. { add.period$
  103.   write$
  104.   newline$
  105. }
  106.  
  107. FUNCTION {new.block}
  108. { output.state before.all =
  109.     'skip$
  110.     { after.block 'output.state := }
  111.   if$
  112. }
  113.  
  114. FUNCTION {new.sentence}
  115. { skip$
  116. }
  117.  
  118. FUNCTION {not}
  119. {   { #0 }
  120.     { #1 }
  121.   if$
  122. }
  123.  
  124. FUNCTION {and}
  125. {   'skip$
  126.     { pop$ #0 }
  127.   if$
  128. }
  129.  
  130. FUNCTION {or}
  131. {   { pop$ #1 }
  132.     'skip$
  133.   if$
  134. }
  135.  
  136. FUNCTION {new.block.checka}
  137. { empty$
  138.     'skip$
  139.     'new.block
  140.   if$
  141. }
  142.  
  143. FUNCTION {new.block.checkb}
  144. { empty$
  145.   swap$ empty$
  146.   and
  147.     'skip$
  148.     'new.block
  149.   if$
  150. }
  151.  
  152. FUNCTION {new.sentence.checka}
  153. { empty$
  154.     'skip$
  155.     'new.sentence
  156.   if$
  157. }
  158.  
  159. FUNCTION {new.sentence.checkb}
  160. { empty$
  161.   swap$ empty$
  162.   and
  163.     'skip$
  164.     'new.sentence
  165.   if$
  166. }
  167.  
  168. FUNCTION {field.or.null}
  169. { duplicate$ empty$
  170.     { pop$ "" }
  171.     'skip$
  172.   if$
  173. }
  174.  
  175. FUNCTION {emphasize}
  176. { duplicate$ empty$
  177.     { pop$ "" }
  178.     { "{\em " swap$ * "}" * }
  179.   if$
  180. }
  181.  
  182. FUNCTION {embolden}
  183. { duplicate$ empty$
  184.     { pop$ "" }
  185.     { "{\bf " swap$ * "}" * }
  186.   if$
  187. }
  188.  
  189. FUNCTION {paren}
  190. { duplicate$ empty$
  191.     { pop$ "" }
  192.     { "(" swap$ * ")" * }
  193.   if$
  194. }
  195.  
  196. INTEGERS { nameptr namesleft numnames }
  197.  
  198. INTEGERS { etal }
  199.  
  200. FUNCTION {format.names}
  201. { 's :=
  202.   #1 'nameptr :=
  203.   s num.names$ 'numnames :=
  204.   numnames #1 >
  205.   s numnames "{ll}" format.name$ "others" = numnames #1 > and
  206.   or 'etal :=
  207.   etal
  208.     { #1 #1 + 'namesleft := }
  209.     { numnames 'namesleft := }
  210.   if$
  211.     { namesleft #0 > }
  212.     { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   % last name first
  213.       t "others" =
  214.     'skip$
  215.     { t "u" change.case$ 't := }
  216.       if$
  217.       nameptr #1 >
  218.     { namesleft #1 >
  219.         { ", " * t * }
  220.         { nameptr #2 >
  221.         { "," * }
  222.         'skip$
  223.           if$
  224.           t "others" =
  225.           etal or
  226.         { " et~al." * }
  227.         { " and " * t * }
  228.           if$
  229.         }
  230.       if$
  231.     }
  232.     't
  233.       if$
  234.       nameptr #1 + 'nameptr :=
  235.       namesleft #1 - 'namesleft :=
  236.     }
  237.   while$
  238. }
  239.  
  240. FUNCTION {format.authors}
  241. { author empty$
  242.     { "" }
  243.     { author format.names }
  244.   if$
  245. }
  246.  
  247. FUNCTION {format.editors}
  248. { editor empty$
  249.     { "" }
  250.     { editor format.names
  251.       editor num.names$ #1 >
  252.     { ", editors" * }
  253.     { ", editor" * }
  254.       if$
  255.     }
  256.   if$
  257. }
  258.  
  259. FUNCTION {format.edited}
  260. { editor empty$
  261.     { "" }
  262.     { "edited by " editor format.names * }
  263.   if$
  264. }
  265.  
  266. FUNCTION {format.title}
  267. { title empty$
  268.     { "" }
  269.     { title "t" change.case$ }
  270.   if$
  271. }
  272.  
  273. FUNCTION {n.dashify}
  274. { 't :=
  275.   ""
  276.     { t empty$ not }
  277.     { t #1 #1 substring$ "-" =
  278.     { t #1 #2 substring$ "--" = not
  279.         { "--" *
  280.           t #2 global.max$ substring$ 't :=
  281.         }
  282.         {   { t #1 #1 substring$ "-" = }
  283.         { "-" *
  284.           t #2 global.max$ substring$ 't :=
  285.         }
  286.           while$
  287.         }
  288.       if$
  289.     }
  290.     { t #1 #1 substring$ *
  291.       t #2 global.max$ substring$ 't :=
  292.     }
  293.       if$
  294.     }
  295.   while$
  296. }
  297.  
  298. FUNCTION {first.page}
  299. { 't :=
  300.   ""
  301.     {  t empty$ not t #1 #1 substring$ "-" = not and }
  302.     { t #1 #1 substring$ *
  303.       t #2 global.max$ substring$ 't :=
  304.     }
  305.   while$
  306. }
  307.  
  308. FUNCTION {format.date}
  309. { year empty$
  310.     { "" }
  311.     'year
  312.   if$
  313. }
  314.  
  315. FUNCTION {format.btitle}
  316. { title emphasize
  317. }
  318.  
  319. FUNCTION {tie.or.space.connect}
  320. { duplicate$ text.length$ #3 <
  321.     { "~" }
  322.     { " " }
  323.   if$
  324.   swap$ * *
  325. }
  326.  
  327. FUNCTION {either.or.check}
  328. { empty$
  329.     'pop$
  330.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  331.   if$
  332. }
  333.  
  334. FUNCTION {format.bvolume}
  335. { volume empty$
  336.     { "" }
  337.     { "volume" volume tie.or.space.connect
  338.       series empty$
  339.     'skip$
  340.     { " of " * series emphasize * }
  341.       if$
  342.       "volume and number" number either.or.check
  343.     }
  344.   if$
  345. }
  346.  
  347. FUNCTION {format.number.series}
  348. { volume empty$
  349.     { number empty$
  350.     { series field.or.null }
  351.     { output.state mid.sentence =
  352.         { "number" }
  353.         { "Number" }
  354.       if$
  355.       number tie.or.space.connect
  356.       series empty$
  357.         { "there's a number but no series in " cite$ * warning$ }
  358.         { " in " * series * }
  359.       if$
  360.     }
  361.       if$
  362.     }
  363.     { "" }
  364.   if$
  365. }
  366.  
  367. FUNCTION {format.edition}
  368. { edition empty$
  369.     { "" }
  370.     { output.state mid.sentence =
  371.     { edition "l" change.case$ " edition" * }
  372.     { edition "t" change.case$ " edition" * }
  373.       if$
  374.     }
  375.   if$
  376. }
  377.  
  378. INTEGERS { multiresult }
  379.  
  380. FUNCTION {multi.page.check}
  381. { 't :=
  382.   #0 'multiresult :=
  383.     { multiresult not
  384.       t empty$ not
  385.       and
  386.     }
  387.     { t #1 #1 substring$
  388.       duplicate$ "-" =
  389.       swap$ duplicate$ "," =
  390.       swap$ "+" =
  391.       or or
  392.     { #1 'multiresult := }
  393.     { t #2 global.max$ substring$ 't := }
  394.       if$
  395.     }
  396.   while$
  397.   multiresult
  398. }
  399.  
  400. FUNCTION {format.pages}
  401. { pages empty$
  402.     { "" }
  403.     { pages multi.page.check
  404.     { "pages" pages n.dashify tie.or.space.connect }
  405.     { "page" pages tie.or.space.connect }
  406.       if$
  407.     }
  408.   if$
  409. }
  410.  
  411. FUNCTION {format.pages.a}
  412. { pages empty$
  413.     { "" }
  414.     { "page" pages first.page tie.or.space.connect }
  415.   if$
  416. }
  417.  
  418. FUNCTION {format.vol.num.pages}
  419. { volume field.or.null embolden
  420.   " " swap$ * *
  421.   format.date empty$
  422.     'skip$
  423.     { duplicate$ empty$
  424.     { pop$ format.date paren }
  425.         { " " * format.date paren * }
  426.       if$
  427.     }
  428.   if$
  429.   pages empty$
  430.     'skip$
  431.     { duplicate$ empty$
  432.     { pop$ format.pages.a }
  433.     { " " * pages first.page *}
  434.       if$
  435.     }
  436.   if$
  437. }
  438.  
  439. FUNCTION {format.chapter.pages}
  440. { chapter empty$
  441.     'format.pages
  442.     { type empty$
  443.     { "chapter" }
  444.     { type "l" change.case$ }
  445.       if$
  446.       chapter tie.or.space.connect
  447.       pages empty$
  448.     'skip$
  449.     { ", " * format.pages * }
  450.       if$
  451.     }
  452.   if$
  453. }
  454.  
  455. FUNCTION {format.in.ed.booktitle}
  456. { booktitle empty$
  457.     { "" }
  458.     { editor empty$
  459.     { "in " booktitle emphasize * }
  460.     { "in " booktitle emphasize * ", " * format.edited * }
  461.       if$
  462.     }
  463.   if$
  464. }
  465.  
  466. FUNCTION {empty.misc.check}
  467. { author empty$ title empty$ howpublished empty$
  468.   month empty$ year empty$ note empty$
  469.   and and and and and
  470.     { "all relevant fields are empty in " cite$ * warning$ }
  471.     'skip$
  472.   if$
  473. }
  474.  
  475. FUNCTION {format.thesis.type}
  476. { type empty$
  477.     'skip$
  478.     { pop$
  479.       type "t" change.case$
  480.     }
  481.   if$
  482. }
  483.  
  484. FUNCTION {format.tr.number}
  485. { type empty$
  486.     { "Technical Report" }
  487.     'type
  488.   if$
  489.   number empty$
  490.     { "t" change.case$ }
  491.     { number tie.or.space.connect }
  492.   if$
  493. }
  494.  
  495. FUNCTION {format.article.crossref}
  496. { key empty$
  497.     { journal empty$
  498.     { "need key or journal for " cite$ * " to crossref " * crossref *
  499.       warning$
  500.       ""
  501.     }
  502.     { "In " journal * }
  503.       if$
  504.     }
  505.     { "In " key * }
  506.   if$
  507.   " \cite{" * crossref * "}" *
  508. }
  509.  
  510. FUNCTION {format.crossref.editor}
  511. { editor #1 "{vv~}{ll}" format.name$
  512.   editor num.names$ duplicate$
  513.   #2 >
  514.     { pop$ " et~al." * }
  515.     { #2 <
  516.     'skip$
  517.     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  518.         { " et~al." * }
  519.         { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  520.       if$
  521.     }
  522.       if$
  523.     }
  524.   if$
  525. }
  526.  
  527. FUNCTION {format.book.crossref}
  528. { volume empty$
  529.     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  530.       "In "
  531.     }
  532.     { "Volume" volume tie.or.space.connect
  533.       " of " *
  534.     }
  535.   if$
  536.   editor empty$
  537.   editor field.or.null author field.or.null =
  538.   or
  539.     { key empty$
  540.     { series empty$
  541.         { "need editor, key, or series for " cite$ * " to crossref " *
  542.           crossref * warning$
  543.           "" *
  544.         }
  545.         { "{\em " * series * "\/}" * }
  546.       if$
  547.     }
  548.     { key * }
  549.       if$
  550.     }
  551.     { format.crossref.editor * }
  552.   if$
  553.   " \cite{" * crossref * "}" *
  554. }
  555.  
  556. FUNCTION {format.incoll.inproc.crossref}
  557. { editor empty$
  558.   editor field.or.null author field.or.null =
  559.   or
  560.     { key empty$
  561.     { booktitle empty$
  562.         { "need editor, key, or booktitle for " cite$ * " to crossref " *
  563.           crossref * warning$
  564.           ""
  565.         }
  566.         { "In {\em " booktitle * "\/}" * }
  567.       if$
  568.     }
  569.     { "In " key * }
  570.       if$
  571.     }
  572.     { "In " format.crossref.editor * }
  573.   if$
  574.   " \cite{" * crossref * "}" *
  575. }
  576.  
  577. FUNCTION {article}
  578. { output.bibitem
  579.   format.authors "author" output.check
  580.   new.block
  581.   crossref missing$
  582.     { journal field.or.null
  583.       format.vol.num.pages output
  584.     }
  585.     { format.article.crossref output.nonnull
  586.       format.pages output
  587.     }
  588.   if$
  589.   new.block
  590.   note output
  591.   fin.entry
  592. }
  593.  
  594. FUNCTION {book}
  595. { output.bibitem
  596.   author empty$
  597.     { format.editors "author and editor" output.check }
  598.     { format.authors output.nonnull
  599.       crossref missing$
  600.     { "author and editor" editor either.or.check }
  601.     'skip$
  602.       if$
  603.     }
  604.   if$
  605.   new.block
  606.   format.btitle "title" output.check
  607.   crossref missing$
  608.     { format.bvolume output
  609.       new.block
  610.       format.number.series output
  611.       new.sentence
  612.       publisher "publisher" output.check
  613.       address output
  614.     }
  615.     { new.block
  616.       format.book.crossref output.nonnull
  617.     }
  618.   if$
  619.   format.edition output
  620.   format.date "year" output.check
  621.   new.block
  622.   note output
  623.   fin.entry
  624. }
  625.  
  626. FUNCTION {booklet}
  627. { output.bibitem
  628.   format.authors output
  629.   new.block
  630.   format.title "title" output.check
  631.   howpublished address new.block.checkb
  632.   howpublished output
  633.   address output
  634.   format.date output
  635.   new.block
  636.   note output
  637.   fin.entry
  638. }
  639.  
  640. FUNCTION {inbook}
  641. { output.bibitem
  642.   author empty$
  643.     { format.editors "author and editor" output.check }
  644.     { format.authors output.nonnull
  645.       crossref missing$
  646.     { "author and editor" editor either.or.check }
  647.     'skip$
  648.       if$
  649.     }
  650.   if$
  651.   new.block
  652.   format.btitle "title" output.check
  653.   crossref missing$
  654.     { format.bvolume output
  655.       format.chapter.pages "chapter and pages" output.check
  656.       new.block
  657.       format.number.series output
  658.       new.sentence
  659.       publisher "publisher" output.check
  660.       address output
  661.     }
  662.     { format.chapter.pages "chapter and pages" output.check
  663.       new.block
  664.       format.book.crossref output.nonnull
  665.     }
  666.   if$
  667.   format.edition output
  668.   format.date "year" output.check
  669.   new.block
  670.   note output
  671.   fin.entry
  672. }
  673.  
  674. FUNCTION {incollection}
  675. { output.bibitem
  676.   format.authors "author" output.check
  677.   new.block
  678.   format.title "title" output.check
  679.   new.block
  680.   crossref missing$
  681.     { format.in.ed.booktitle "booktitle" output.check
  682.       format.bvolume output
  683.       format.number.series output
  684.       format.chapter.pages output
  685.       new.sentence
  686.       publisher "publisher" output.check
  687.       address output
  688.       format.edition output
  689.       format.date "year" output.check
  690.     }
  691.     { format.incoll.inproc.crossref output.nonnull
  692.       format.chapter.pages output
  693.     }
  694.   if$
  695.   new.block
  696.   note output
  697.   fin.entry
  698. }
  699.  
  700. FUNCTION {inproceedings}
  701. { output.bibitem
  702.   format.authors "author" output.check
  703.   new.block
  704.   format.title "title" output.check
  705.   new.block
  706.   crossref missing$
  707.     { format.in.ed.booktitle "booktitle" output.check
  708.       format.bvolume output
  709.       format.number.series output
  710.       format.pages output
  711.       address empty$
  712.     { organization publisher new.sentence.checkb
  713.       organization output
  714.       publisher output
  715.       format.date "year" output.check
  716.     }
  717.     { address output.nonnull
  718.       format.date "year" output.check
  719.       new.sentence
  720.       organization output
  721.       publisher output
  722.     }
  723.       if$
  724.     }
  725.     { format.incoll.inproc.crossref output.nonnull
  726.       format.pages output
  727.     }
  728.   if$
  729.   new.block
  730.   note output
  731.   fin.entry
  732. }
  733.  
  734. FUNCTION {conference} { inproceedings }
  735.  
  736. FUNCTION {manual}
  737. { output.bibitem
  738.   author empty$
  739.     { organization empty$
  740.     'skip$
  741.     { organization output.nonnull
  742.       address output
  743.     }
  744.       if$
  745.     }
  746.     { format.authors output.nonnull }
  747.   if$
  748.   new.block
  749.   format.btitle "title" output.check
  750.   author empty$
  751.     { organization empty$
  752.     { address new.block.checka
  753.       address output
  754.     }
  755.     'skip$
  756.       if$
  757.     }
  758.     { organization address new.block.checkb
  759.       organization output
  760.       address output
  761.     }
  762.   if$
  763.   format.edition output
  764.   format.date output
  765.   new.block
  766.   note output
  767.   fin.entry
  768. }
  769.  
  770. FUNCTION {mastersthesis}
  771. { output.bibitem
  772.   format.authors "author" output.check
  773.   new.block
  774.   format.title "title" output.check
  775.   new.block
  776.   "Master's thesis" format.thesis.type output.nonnull
  777.   school "school" output.check
  778.   address output
  779.   format.date "year" output.check
  780.   new.block
  781.   note output
  782.   fin.entry
  783. }
  784.  
  785. FUNCTION {misc}
  786. { output.bibitem
  787.   format.authors output
  788.   title howpublished new.block.checkb
  789.   format.title output
  790.   howpublished new.block.checka
  791.   howpublished output
  792.   format.date output
  793.   new.block
  794.   note output
  795.   fin.entry
  796.   empty.misc.check
  797. }
  798.  
  799. FUNCTION {phdthesis}
  800. { output.bibitem
  801.   format.authors "author" output.check
  802.   new.block
  803.   format.btitle "title" output.check
  804.   new.block
  805.   "PhD thesis" format.thesis.type output.nonnull
  806.   school "school" output.check
  807.   address output
  808.   format.date "year" output.check
  809.   new.block
  810.   note output
  811.   fin.entry
  812. }
  813.  
  814. FUNCTION {proceedings}
  815. { output.bibitem
  816.   editor empty$
  817.     { organization output }
  818.     { format.editors output.nonnull }
  819.   if$
  820.   new.block
  821.   format.btitle "title" output.check
  822.   format.bvolume output
  823.   format.number.series output
  824.   address empty$
  825.     { editor empty$
  826.     { publisher new.sentence.checka }
  827.     { organization publisher new.sentence.checkb
  828.       organization output
  829.     }
  830.       if$
  831.       publisher output
  832.       format.date "year" output.check
  833.     }
  834.     { address output.nonnull
  835.       format.date "year" output.check
  836.       new.sentence
  837.       editor empty$
  838.     'skip$
  839.     { organization output }
  840.       if$
  841.       publisher output
  842.     }
  843.   if$
  844.   new.block
  845.   note output
  846.   fin.entry
  847. }
  848.  
  849. FUNCTION {techreport}
  850. { output.bibitem
  851.   format.authors "author" output.check
  852.   new.block
  853.   format.title "title" output.check
  854.   new.block
  855.   format.tr.number output.nonnull
  856.   institution "institution" output.check
  857.   address output
  858.   format.date "year" output.check
  859.   new.block
  860.   note output
  861.   fin.entry
  862. }
  863.  
  864. FUNCTION {unpublished}
  865. { output.bibitem
  866.   format.authors "author" output.check
  867.   new.block
  868.   format.title "title" output.check
  869.   new.block
  870.   note "note" output.check
  871.   format.date output
  872.   fin.entry
  873. }
  874.  
  875. FUNCTION {default.type} { misc }
  876.  
  877. MACRO {jan} {"Jan."}
  878.  
  879. MACRO {feb} {"Feb."}
  880.  
  881. MACRO {mar} {"Mar."}
  882.  
  883. MACRO {apr} {"Apr."}
  884.  
  885. MACRO {may} {"May"}
  886.  
  887. MACRO {jun} {"June"}
  888.  
  889. MACRO {jul} {"July"}
  890.  
  891. MACRO {aug} {"Aug."}
  892.  
  893. MACRO {sep} {"Sept."}
  894.  
  895. MACRO {oct} {"Oct."}
  896.  
  897. MACRO {nov} {"Nov."}
  898.  
  899. MACRO {dec} {"Dec."}
  900.  
  901. MACRO {acmcs} {"ACM Comput. Surv."}
  902.  
  903. MACRO {acta} {"Acta Inf."}
  904.  
  905. MACRO {cacm} {"Commun. ACM"}
  906.  
  907. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  908.  
  909. MACRO {ibmsj} {"IBM Syst.~J."}
  910.  
  911. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  912.  
  913. MACRO {ieeetc} {"IEEE Trans. Comput."}
  914.  
  915. MACRO {ieeetcad}
  916.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  917.  
  918. MACRO {ipl} {"Inf. Process. Lett."}
  919.  
  920. MACRO {jacm} {"J.~ACM"}
  921.  
  922. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  923.  
  924. MACRO {scp} {"Sci. Comput. Programming"}
  925.  
  926. MACRO {sicomp} {"SIAM J. Comput."}
  927.  
  928. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  929.  
  930. MACRO {tods} {"ACM Trans. Database Syst."}
  931.  
  932. MACRO {tog} {"ACM Trans. Gr."}
  933.  
  934. MACRO {toms} {"ACM Trans. Math. Softw."}
  935.  
  936. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  937.  
  938. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  939.  
  940. MACRO {tcs} {"Theoretical Comput. Sci."}
  941.  
  942. MACRO {advp} {"Adv. Phys."}
  943. MACRO {ajp} {"Am. J. Phys."}
  944. MACRO {ao} {"Appl. Opt."}
  945. MACRO {apl} {"Appl. Phys. Lett."}
  946. MACRO {apj} {"Astrophys. J."}
  947. MACRO {baps} {"Bull. Am. Phys. Soc."}
  948. MACRO {cpc} {"Computer Phys. Comm."}
  949. MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"}
  950. MACRO {fed} {"Fusion Eng. Design"}
  951. MACRO {ft} {"Fusion Tech."}
  952. MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
  953. MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
  954. MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"}
  955. MACRO {ip} {"Infrared Phys."}
  956. MACRO {jap} {"J. Appl. Phys."}
  957. MACRO {jcp} {"J. Comput. Phys."}
  958. MACRO {jetp} {"Sov. Phys.-JETP"}
  959. MACRO {jfe} {"J. Fusion Energy"}
  960. MACRO {jfm} {"J. Fluid Mech."}
  961. MACRO {jgr} {"J. Geophys. Res."}
  962. MACRO {jmp} {"J. Math. Phys."}
  963. MACRO {jne} {"J. Nucl. Energy"}
  964. MACRO {jnec} {"J. Nucl. Energy, Part C"}
  965. MACRO {jnm} {"J. Nucl. Mater."}
  966. MACRO {josa} {"J. Opt. Soc. Am."}
  967. MACRO {jpp} {"J. Plasma Phys."}
  968. MACRO {jpsj} {"J. Phys. Soc. Jpn"}
  969. MACRO {jvst} {"J. Vac. Sci. Technol."}
  970. MACRO {nedf} {"Nucl. Eng. Design/Fusion"}
  971. MACRO {nf} {"Nucl. Fusion"}
  972. MACRO {nim} {"Nucl. Instrum. Methods"}
  973. MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"}
  974. MACRO {nt/f} {"Nucl. Tech./Fusion"}
  975. MACRO {pf} {"Phys. Fluids"}
  976. MACRO {pfa} {"Phys. Fluids A"}
  977. MACRO {pfb} {"Phys. Fluids B"}
  978. MACRO {pl} {"Phys. Lett."}
  979. MACRO {pla} {"Phys. Lett. A"}
  980. MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
  981. MACRO {pp} {"Plasma Phys."}
  982. MACRO {ppcf} {"Plasma Phys. Controlled Fusion"}
  983. MACRO {prl} {"Phys. Rev. Lett."}
  984. MACRO {pr} {"Phys. Rev."}
  985. MACRO {pra} {"Phys. Rev. A"}
  986. MACRO {ps} {"Physica Scripta"}
  987. MACRO {rmp} {"Rev. Mod. Phys."}
  988. MACRO {rsi} {"Rev. Sci. Instrum."}
  989. MACRO {sjpp} {"Sov. J. Plasma Phys."}
  990. MACRO {spd} {"Sov. Phys.-Dokl."}
  991. MACRO {sptp} {"Sov. Phys.-Tech. Phys."}
  992. MACRO {spu} {"Sov. Phys.-Usp."}
  993.  
  994. READ
  995.  
  996. STRINGS { longest.label }
  997.  
  998. INTEGERS { number.label longest.label.width }
  999.  
  1000. FUNCTION {initialize.longest.label}
  1001. { "" 'longest.label :=
  1002.   #1 'number.label :=
  1003.   #0 'longest.label.width :=
  1004. }
  1005.  
  1006. FUNCTION {longest.label.pass}
  1007. { number.label int.to.str$ 'label :=
  1008.   number.label #1 + 'number.label :=
  1009.   label width$ longest.label.width >
  1010.     { label 'longest.label :=
  1011.       label width$ 'longest.label.width :=
  1012.     }
  1013.     'skip$
  1014.   if$
  1015. }
  1016.  
  1017. EXECUTE {initialize.longest.label}
  1018.  
  1019. ITERATE {longest.label.pass}
  1020.  
  1021. FUNCTION {begin.bib}
  1022. { preamble$ empty$
  1023.     'skip$
  1024.     { preamble$ write$ newline$ }
  1025.   if$
  1026.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1027. }
  1028.  
  1029. EXECUTE {begin.bib}
  1030.  
  1031. EXECUTE {init.state.consts}
  1032.  
  1033. ITERATE {call.type$}
  1034.  
  1035. FUNCTION {end.bib}
  1036. { newline$
  1037.   "\end{thebibliography}" write$ newline$
  1038. }
  1039.  
  1040. EXECUTE {end.bib}
  1041.